package www.albertzhe.askForLeave;

import www.albertzhe.askForLeave.impl.Request;
import www.albertzhe.askForLeave.impl.Result;

/**
 * 接口描述：对 request 和 Result 封装，用来转发
 */
public interface Chain {
    /**
     * 获取当前 Request 对象或者返回当前进行包装后的 Request 对象
     * @return
     */
    Request request();

    /**
     * 转发功能请求
     * @param request 请求
     * @return
     */
    Result proceed(Request request);
}